package com.iwhalecloud.bss.kite.cucc.manager.api;

import com.iwhalecloud.bss.kite.manager.enums.ActionType;
import com.iwhalecloud.bss.kite.manager.enums.InstType;
import com.iwhalecloud.bss.kite.manager.enums.RelType;
import com.iwhalecloud.bss.kite.manager.inst.KiteOfferInstAcct;
import com.iwhalecloud.bss.kite.manager.inst.KiteOfferInstContract;

public interface ILocalOperateSceneInstService {

    /**
     * 添加销售品级账户
     *
     * @param sceneInstId 场景实例id
     * @param offerInstAcct 账户级销售品实例
     * @param offerInstId 销售品实例id
     * @param relType 关系类型
     * @param relActionType 关系动作类型
     * @param instType
     * @return
     */
    String addOfferInstAcctRel(String sceneInstId, KiteOfferInstAcct offerInstAcct, String offerInstId,
        InstType instType, RelType relType, ActionType relActionType);

    /**
     * 删除销售品关联账户实例
     *
     * @param sceneInstId 场景实例id
     * @param offerInstAcctRelId 销售品级账户实例ID
     * @return
     */
    Boolean deleteOfferInstAcctRel(String sceneInstId, String offerInstId, InstType offerInstType,
        String offerInstAcctRelId);

    /**
     * @param sceneInstId
     * @param offerInstContract
     * @param offerInstId
     * @param relType
     * @param relActionType
     * @return
     */
    String addOfferInstContractRel(String sceneInstId, KiteOfferInstContract offerInstContract, String offerInstId,
        InstType offerInstType, RelType relType, ActionType relActionType);

    /**
     * @param sceneInstId
     * @param offerInstId
     * @param offerInstType
     * @param offerInstContractRelId
     * @return
     */
    Boolean deleteOfferInstContractRel(String sceneInstId, String offerInstId, InstType offerInstType,
        String offerInstContractRelId);

    /**
     * 删除套餐销售品实例
     * @param sceneInstId 场景实例id
     * @param offerInstId 套餐销售品实例id
     * @return
     */
    Boolean deleteMemOfferInst(String sceneInstId, String offerInstId);
}
